﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DrugStore.Objects;
using DrugStore.Library;
using System.Data.SqlClient;
using System.Configuration;
using BLToolkit.Data;


namespace DrugStore.FormCollect
{
    public partial class QuanLyNguoiSuDung_AddNew : Form
    {
        private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        private NguoiSuDung us = new NguoiSuDung();
        private static DbManager db = new DbManager();

        private QuanLyNguoiSuDung m_parent;

        public QuanLyNguoiSuDung_AddNew(QuanLyNguoiSuDung frm1)
        {
            InitializeComponent();
            m_parent = frm1;
        }

        private void bt_addUser_Click(object sender, EventArgs e)
        {
            lb_ThongBao.Text = "";
            if (DBFactory.GetListItem<NguoiSuDung>(db).Where(user => user.UserName == tb_userName.Text).ToList().Count > 0)
            {
                lb_ThongBao.Text = "Tên đăng nhập này đã có người sử dụng, vui lòng chọn tên đăng nhập khác";
                tb_userName.Text = "";
                tb_userName.Focus();
            } else if (tb_userName.Text.Length >= 5 && tb_password.Text.Length >= 5)
            {
                NguoiSuDung user = new NguoiSuDung();
                user.CMND = tb_CMND.Text;
                user.DiaChi = tb_diachi.Text;
                user.DienThoai_1 = tb_phone1.Text;
                user.DienThoai_2 = tb_Phone2.Text;
                user.Email_1 = tb_Email1.Text;
                user.Email_2  = tb_Email2.Text;
                user.HoTen = tb_FullName.Text;
                user.ID_NguoiTao = null;
                user.MoTaCongViec = null;
                user.NgaySinh = dt_DoB.Value;
                user.NgayTao = DateTime.Now;
                user.PassWord = Util.Encryptor.MD5Hash(tb_password.Text);
                user.TrinhDo = tb_major.Text;
                user.UserName = tb_userName.Text;
                try
                {
                    DBFactory.Insert<NguoiSuDung>(user, db);
                    MessageBox.Show("");
                    switch (MessageBox.Show(this, " Bạn có muốn tạo thêm người sử dụng khác?", "Tạo người dùng mới thành công.", MessageBoxButtons.YesNo))
                    {
                        case DialogResult.Yes:
                            {
                                this.ClearControl();
                                this.Focus();
                            }
                            break;
                        default:
                            {
                                this.Close();
                            }
                            break;
                    }        
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            else if (tb_userName.Text.Length < 5)
            {
                lb_ThongBao.Text = "Tên đăng nhập không được để trống và dài lớn hơn 4 kí tự";
            }
            else if (tb_password.Text.Length < 5)
            {
                lb_ThongBao.Text = "Mật khẩu không được để trống và phải dài hơn 4 kí tự";
            }


        }

        private void tb_userName_TextChanged(object sender, EventArgs e)
        {
            lb_ThongBao.Text = "";
        }

        private void tb_password_TextChanged(object sender, EventArgs e)
        {
            lb_ThongBao.Text = "";
        }

        private void tb_userName_Leave(object sender, EventArgs e)
        {
            if (DBFactory.GetListItem<NguoiSuDung>(db).Where(user => user.UserName == tb_userName.Text).ToList().Count > 0)
                lb_ThongBao.Text = "Tên đăng nhập này đã có người sử dụng, vui lòng chọn tên đăng nhập khác";
            this.Text = "";
            this.Focus();
        }

        private void ClearControl()
        {
            panel1.Controls.ClearControls();
            groupBox1.Controls.ClearControls();
            groupBox2.Controls.ClearControls();
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            this.ClearControl();
        }

        private void QuanLyNguoiSuDung_AddNew_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (System.Windows.Forms.Application.OpenForms["QuanLyNguoiSuDung"] != null)
            {
                m_parent.ReloadForm();
            }
            MainFormAdmin main = new MainFormAdmin();
            main.DestroyChild(this.Name);
        }
    }
}